/**
 *
 * @properties={typeid:24,uuid:"9D09B0B6-4FF6-4342-AD47-5413AE5C7AD9"}
 */
function agregar_renglon()
{ //  dar daba alta de un renglon en op_detalle 
	op_cabecera_to_op_detalle.newRecord(false)    
}

/**
 *
 * @properties={typeid:24,uuid:"CFF25D33-19B5-4A4C-934C-44353585FA5B"}
 */
function cancelar() 
{
	databaseManager.rollbackEditedRecords()
	databaseManager.setAutoSave(true)
	Iniciar();
}

/**
 *
 * @properties={typeid:24,uuid:"2C8B686F-DBEA-404C-B4EF-77500A1A65AE"}
 */
function confirmar() 
{
 totalizar()
 var difer = Math.abs(globals.gtotal_valores - globals.gtotal_comprob)
 //if (globals.gtotal_valores != globals.gtotal_comprob) anulado 01/07/2010
 // se cambió el sgte if por problemas de redondeo
 if (difer > 0.01)
 {
	globals.gMensaje="No coincide el total de los comprobantes con los valores ingresados"
		+ "Total valores :  " + globals.gtotal_valores + "Total comprobantes : " + globals.gtotal_comprob
	globals.gMensajes()
 }
 else
 {
	//// buscar numeracion de orden de pago   codigo=4  fijo???
	var fs_nro_op = databaseManager.getFoundSet(controller.getServerName(),'numeracion_pr')
	fs_nro_op.loadAllRecords()
	fs_nro_op.find()
	fs_nro_op.sucursal=sucursal
	fs_nro_op.letra=letra
	fs_nro_op.cod_comprobante=4   //fijo igual que en recibos ???????
	var found=fs_nro_op.search()
	if (found != 1)
     {	
	   globals.gMensaje = 'Sucursal o Tipo de comprobante incorrectos al buscar numeracion'
	   globals.gMensajes();
     }
     else
     {	
	  fs_nro_op.setSelectedIndex(1)
	  fs_nro_op.ultimo_numero = fs_nro_op.ultimo_numero + 1
      
	 ////guardar mas datos de op-cabecera  // es la tabla del form
      nro_comprobante=fs_nro_op.ultimo_numero
     // sucursal =  es lookup value de op_cabecera
     // fecha       se llena en iniciar
     // proveedor_id  se llena con la valuelist
      //31/03/2010
      codigo_movimiento=4
      chofer_id=0
      importe=globals.gtotal_valores  // ojo !! al calcular retenciones este deberá ser ootro total 
      total_comprobantes=globals.gtotal_comprob
      total_retenciones=0 // hay que crear globals.gtotal_retenciones
      total_valores=globals.gtotal_valores
      
     
     //// grabar el pago en ctacte  // desde la relacion op_cabecera-proveedor + proveedor-ctacte
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.newRecord()      
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provedor_id=proveedor_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_mov=fecha
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.nro_factura=nro_comprobante
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=4 // fijo????  
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.sucursal=sucursal
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.letra=letra
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_vto=null
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.saldo=0
		// la provincia de debe tomar de la tabla de ciudades= no está en proveedores
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.provincia_id=op_cabecera_to_proveedor.proveedor_to_ciudades.provincia_id
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.importe=importe
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.neto=importe  //neto=importe?
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva=0  // iva=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_porc=0
		op_cabecera_to_proveedor.proveedor_to_ctacte_pr.cond_pago_id=0
      
     ////restar al saldo el importe del pago de cada comprobante y desmarcar ctacte
	
     var found=op_cabecera_to_op_detalle_comprob.getSize()
     for (var i = 1 ; i <= op_cabecera_to_op_detalle_comprob.getSize(); i++)
     {
     op_cabecera_to_op_detalle_comprob.setSelectedIndex(i)
     forms.opago_3.op_detalle_comprob_to_ctacte_pr.marcado_ctacte=0
     forms.opago_3.op_detalle_comprob_to_ctacte_pr.saldo-=forms.opago_1.op_cabecera_to_op_detalle_comprob.importe
     var t=1;
     }  
 
	
	//// grabar cyb  por cada detalle  y cheques  
	var found=op_cabecera_to_op_detalle.getSize() // ver cuantos hay
	for (var i = 1 ; i <= op_cabecera_to_op_detalle.getSize(); i++)
    {
    //// grabar cheques    
	op_cabecera_to_op_detalle.setSelectedIndex(i)
	if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1)	
	{// es cheque
		if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_propio==1)	
		{// es propio	
		var es_ok=op_cabecera_to_op_detalle.op_detalle_id_to_cheques.newRecord()
	
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.banco_id=op_cabecera_to_op_detalle.banco_id // ???
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.banco_sucursal=op_cabecera_to_op_detalle.banco_sucursal //???
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.boleta_dep=null
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.cheque_nro=op_cabecera_to_op_detalle.cheque_nro
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.cuentas_cyb_id=op_cabecera_to_op_detalle.cuentas_cyb_id
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.estado=globals.zconf_chq_emitido		
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.fecha_emision=op_cabecera_to_op_detalle.fecha_emision_chq
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.fecha_entrega=fecha
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.fecha_pago=op_cabecera_to_op_detalle.fecha_pago
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.importe=op_cabecera_to_op_detalle.importe
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.lugar_emision=op_cabecera_to_op_detalle.lugar_emision // ???
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.marca_acredit=0
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.moneda_id=op_cabecera_to_op_detalle.moneda_id
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.titular=op_cabecera_to_op_detalle.titular
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.titular_cuit=op_cabecera_to_op_detalle.titular_cuit
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.titular_direccion=op_cabecera_to_op_detalle.titular_direccion
		op_cabecera_to_op_detalle.op_detalle_id_to_cheques.valor_id=op_cabecera_to_op_detalle.valor_id
		//31/03/2010
		//op_cabecera_to_op_detalle.cheque_id=op_cabecera_to_op_detalle.op_detalle_id_to_cheques.cheque_id
		//op_cabecera_to_op_detalle.cheque_id queda con null 
		                                                  
		}// fin es propio
		else
		{// es de terceros
		 //  desmarcar  en cheques el cheque y poner fecha_entrega y estado
		if (forms.opago_2.op_detalle_to_cheques_id.marcado_cheque==1)
		{
			forms.opago_2.op_detalle_to_cheques_id.marcado_cheque=0  // desmarca
	 		forms.opago_2.op_detalle_to_cheques_id.fecha_entrega=fecha // entregado 
			forms.opago_2.op_detalle_to_cheques_id.estado=globals.zconf_chq_entregado_pago
			var r=1
		}
  
		}// fin es de terceros
    }// fin es cheque
	
    //// grabar movin_cyb para todos los valores
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.newRecord();
	if(op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1)
	{//es cheque
		if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_propio==1) //es propio
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cheque_id=op_cabecera_to_op_detalle.op_detalle_id_to_cheques.cheque_id; //??? comprobar  //13/04/2010 este si funciona??????????
		else // es terceros
		{
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cheque_id=forms.opago_2.op_detalle_to_cheques_id.cheque_id;
		
		}
	}
	else
	{// es efectivo
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cheque_id=null;	
	}
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cod_movim=globals.zconf_cyb_cod_movim_egreso;     //1=Ingreso 2=Egreso ver solucion valuelist
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.cuentas_cyb_id=op_cabecera_to_op_detalle.cuentas_cyb_id;
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.empresa_id=proveedor_id;   // cabecera
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.fecha_movim=fecha;         // cabecera
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.importe=op_cabecera_to_op_detalle.importe;
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.imputacion_id=globals.zconf_cyb_imputacion_pago_proveed; // 1=cobranza de clientes 2= Pago a proveedores tabla cod_imput
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.valor_id=op_cabecera_to_op_detalle.valor_id;
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.concepto="Orden Pago: " + nro_comprobante + ' - ' + op_cabecera_to_proveedor.razon_social //21/04/2010
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.marca_conciliacion=0  //26/04/2010
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.fecha_conciliacion=null  //26/04/2010
	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.referencia=' '  //26/04/2010
	if((op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1) ||   //26/04/2010
	   (op_cabecera_to_op_detalle.op_detalle_to_valores.usa_cta_bco==1))
	 	op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.referencia=op_cabecera_to_op_detalle.cheque_nro;  //26/04/2010
	
	//// 27/05/2010////////////////////////////////////////////////////////
	if (op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.movim_cyb_to_cuentas_cyb.cuentas_tipo==0) // es cuenta caja
	{
	if(op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1) 
	{// es cheque 
		if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_propio!=1) //es terceros
			op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.movim_cyb_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_valores-=op_cabecera_to_op_detalle.importe;
	}
	else // es efectivo
		op_cabecera_to_op_detalle.op_detalle_to_movim_cyb.movim_cyb_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_efectivo-=op_cabecera_to_op_detalle.importe;
	}
	//// 27/05/2010 hasta ////////////////////////////////////////////////////////
		
	var x=1; // parar debugger
    } // cierra el for
 
    
	//// grabar todo///////////////////////////////////////////////////////
	var estado=databaseManager.saveData()
	if (estado==true)
	{
	globals.gMensaje ='Orden de Pago ' + letra + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_comprobante,'00000000') +  ' Generada correctamente' + ' Imprime:'
	var resp=globals.DIALOGS.showQuestionDialog('Orden de Pago',  globals.gMensaje,  "Si", "No" )
	if (resp == 'Si')
	{
		//forms.op_cabecera_imp.controller.print(true,true)
		forms.opago_v2_cabecera_imp.controller.showPrintPreview(true)	
	}
	Iniciar()
	}
	else
	{
	globals.gMensaje ='Orden de Pago No fue generada '
	globals.DIALOGS.showInfoDialog('Generador de Orden de Pago',  globals.gMensaje,  "OK")
	cancelar()
	}
	
	}// cierra el else de numeracion 
	var f= 1  // parar debug
 }
 var f= 1  // parar debug
}

/**
 *
 * @properties={typeid:24,uuid:"9B9B099B-FFB8-4182-869E-102BB66A9080"}
 */
function eliminar_renglon() 
{
var found = op_cabecera_to_op_detalle.getSize()
	if (found==0)
	{
	    globals.gtotal_valores=0
	}
	else
	{
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea dar de baja? ',  'Si', 'No')
	if (resp == 'Si')
	{
		op_cabecera_to_op_detalle.deleteRecord()
		totales_valores()
	}
	}
}

/**
 *
 * @properties={typeid:24,uuid:"2D3AE9B1-3B98-4A8B-A687-8E8FB8503C59"}
 */
function salir_rec() 
{
 	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir?' ,  'Si', 'No')
	if (resp == 'Si')
	{
		databaseManager.rollbackEditedRecords()
		databaseManager.setAutoSave(true)
		//globals.Ira_Principal()
	}
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"0E63F3C5-A752-4514-9BAD-5EE955D804F9"}
 */
function totalizar() 
{
	totales_valores()
	totales_comprob()
}

/**
 *
 * @properties={typeid:24,uuid:"A9B7E279-1722-4A97-AD04-48C887FE1E4C"}
 */
function Iniciar() 
{
	globals.autosaveoff();
	controller.newRecord(false);
	fecha = new Date();  
	letra="X ";     
	globals.gtotal_comprob=0;
	globals.gtotal_valores=0;
	globals.gtotal_saldo=0;
}

/**
 *
 * @properties={typeid:24,uuid:"73FAFFF3-A0A1-4B22-9F6E-F3DF06B76189"}
 */
function totales_comprob() 
{
	/*globals.gtotal_comprob=0
	for ( var i = 1 ; i <= op_cabecera_to_op_detalle_comprob.getSize(); i++ )
	{
		op_cabecera_to_op_detalle_comprob.setSelectedIndex(i)
		globals.gtotal_comprob+= op_cabecera_to_op_detalle_comprob.importe
	}
	*/
	globals.gtotal_comprob=0
	for ( var i = 1 ; i <= op_cabecera_to_op_detalle_comprob.getSize(); i++ )
	{
		op_cabecera_to_op_detalle_comprob.setSelectedIndex(i)
		if (op_cabecera_to_op_detalle_comprob.op_detalle_comprob_to_ctacte_pr.ctacte_pr_to_tab_mov_pr.d_h == 1)
	  	{
			auxiliar_saldo = globals.redondeo(op_cabecera_to_op_detalle_comprob.importe * (-1));
	  	}
	    else
	  	{
			auxiliar_saldo = globals.redondeo(op_cabecera_to_op_detalle_comprob.importe)
	  	}
		globals.gtotal_comprob+= globals.redondeo(auxiliar_saldo)
	} 
}

/**
 *
 * @properties={typeid:24,uuid:"5FF43CA6-A8CC-46A4-A3B9-05E3547FAD70"}
 */
function totales_valores() 
{
	globals.gtotal_valores=0
	for ( var i = 1 ; i <= op_cabecera_to_op_detalle.getSize(); i++ )
	{
		op_cabecera_to_op_detalle.setSelectedIndex(i)
		globals.gtotal_valores+= op_cabecera_to_op_detalle.importe 
	} 
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"EABE8613-15F6-476B-A6C0-72663368DD83"}
 */
function agregar_renglon_comprob() 
{
	// llamar al otro form para seleccionar los mov. de ctacte.
	application.showFormInDialog(forms.ctacte_pr_list_opago,500,500,800,400,'Comprobantes a pagar',true,false,'ctacte_opago',false);
	// vuelve del anterior form con las columnas de op_detalle_comprob dadas de alta
	// con los datos de los mov. de ctacte marcados
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"7B2C7E18-3D69-490B-896C-35C2A536F7D7"}
 */
function eliminar_renglon_comprob() 
{
	var found = op_cabecera_to_op_detalle_comprob.getSize()
	if (found==0)
	{
	   	globals.gtotal_comprob=0  // ????
	}
	else
	{
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea dar de baja? ',  'Si', 'No')
	if (resp == 'Si')
	{
		op_cabecera_to_op_detalle_comprob.deleteRecord()
		totales_comprob()  // recalcula los totales ?  probar
	}
	}
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"410E9763-ECB8-49A6-93C2-BA25CAA92413"}
 */
function elige_proveedor() 
{
	globals.gtotal_saldo=0
	globals.gtotal_valores=0
	globals.gtotal_comprob=0
	
	// salvar_proveedor: porque perdia en codigo de proveedor en el newRecord
	var salvar_proveedor=proveedor_id
	// rollback: porque al cambiar de proveedor dejaba los movs. del anterior
	databaseManager.rollbackEditedRecords()
	// newRecord: porque al traia datos de la ultima op de ese proveedor en vez de crear uno
	controller.newRecord(false);
	// perdia la fecha y letra seteadas en Iniciar() despues de newRecord
	fecha = new Date();  //31/3/2010
	letra="X ";          //31/3/2010
	proveedor_id=salvar_proveedor
	globals.marca_primer_find = 0
	globals.marca_primer_find_1 = 0

}
